#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
using namespace std;
map<string,PII>mp;
int n;
string str,strf;
signed main(){
	freopen("network.in","r",stdin);
	freopen("network.out","w",stdout);
	int n;cin>>n;
	for(int i=1;i<=n;i++){
		int c=0,f=0,p=0,s=0,t=0,q=0;
		cin>>strf>>str;
		int len=str.size();
		for(int j=0;j<len;j++){
			if(str[j]<='9'&&str[j]>='0'&&p==0) c++;
			if(str[j]==':'&&p==1) {f=1;break;}
			if(str[j]==':') p=1;
			if(str[j]<='9'&&str[j]>='0'&&p==1) s++;
			if(c>3) {f=1;break;}
			if(str[j]=='.') c=0,t++;
			if(str[j]=='.'&&p==1) {f=1;break;}
			if(t>3) {f=1;break;}
			if(str[j]!=':'&&str[j]!='.'&&(!(str[j]<='9'&&str[j]>='0'))) {f=1;break;} 
			if(j!=0&&(str[j]=='.'||str[j]==':')&&str[j-1]=='.') {f=1;break;}
		}
		if(f==0){
			s=0;
			p=0;
			c=0;
			t=0;
			for(int j=0;j<len;j++){
				if((str[j]=='.'||str[j]==':')&&p==0) {
					if(c>255) {f=1;break;}
					c=0;
					t=0;
				}
				if(p==1) s=s*10+str[j]-'0',q++;
				if(str[j]==':') p=1,t=0;
				if(str[j]<='9'&&str[j]>='0'&&p==0) c=c*10+str[j]-'0',t++;
				if(t!=0&&str[j]<='9'&&str[j]>='0'&&c==0) {f=1;break;}
				if(q!=0&&str[j]<='9'&&str[j]>='0'&&s==0) {f=1;break;}
			}
		}
		if(f==1||s>65535) {
			puts("ERR");
			continue;
		}
		if(strf=="Server"){
			if(mp[str].first==0) {mp[str].first=1;mp[str].second=i;puts("OK");}
			else puts("FAIL");
		}
		else {
			if(mp[str].first==0) puts("FAIL");
			else cout<<mp[str].second<<"\n";
		}
	}
	return 0;
}
